package com.bhs.sansonglogistics.utils;

import android.Manifest;
import android.app.Activity;
import android.view.View;


import com.allenliu.versionchecklib.v2.AllenVersionChecker;
import com.allenliu.versionchecklib.v2.builder.DownloadBuilder;
import com.allenliu.versionchecklib.v2.builder.UIData;
import com.bhs.sansonglogistics.BuildConfig;
import com.bhs.sansonglogistics.dialog.MyClickListener;
import com.bhs.sansonglogistics.dialog.VersionUpdatingDialog;
import com.pgyer.pgyersdk.PgyerSDKManager;
import com.pgyer.pgyersdk.callback.CheckoutCallBack;
import com.pgyer.pgyersdk.model.CheckSoftModel;


public class VersionUpdatingUtils {


    public static void versionUpdating(Activity activity) {
        PgyerSDKManager.checkVersionUpdate(new CheckoutCallBack() {
            @Override
            public void onNewVersionExist(CheckSoftModel model) {
                //检查版本成功（有新版本）
                /**
                 *   CheckSoftModel 参数介绍
                 *
                 *    private int buildBuildVersion;//蒲公英生成的用于区分历史版本的build号
                 *     private String forceUpdateVersion;//强制更新版本号（未设置强置更新默认为空）
                 *     private String forceUpdateVersionNo;//强制更新的版本编号
                 *     private boolean needForceUpdate;//	是否强制更新
                 *     private boolean buildHaveNewVersion;//是否有新版本
                 *     private String downloadURL;//应用安装地址
                 *     private String buildVersionNo;//上传包的版本编号，默认为1 (即编译的版本号，一般来说，编译一次会
                 *    变动一次这个版本号, 在 Android 上叫 Version Code。对于 iOS 来说，是字符串类型；对于 Android 来
                 *    说是一个整数。例如：1001，28等。)
                 *     private String buildVersion;//版本号, 默认为1.0 (是应用向用户宣传时候用到的标识，例如：1.1、8.2.1等。)
                 *     private String buildShortcutUrl;//	应用短链接
                 *     private String buildUpdateDescription;//	应用更新说明
                 */

                VersionUpdatingDialog versionUpdatingDialog = new VersionUpdatingDialog(activity);
                versionUpdatingDialog.show();
                versionUpdatingDialog.setData(model.getBuildVersion(), model.getBuildUpdateDescription());
                versionUpdatingDialog.setMyClickListener(new MyClickListener() {
                    @Override
                    public void onClick(View v) {
                        ToastUtil.show("正在后台更新");
                        versionUpdatingDialog.dismiss();
                        UIData uiData = UIData.create().setDownloadUrl(model.getDownloadURL());
                        uiData.setTitle("提示");
                        uiData.setContent("下载完成，立即安装");
                        DownloadBuilder builder = AllenVersionChecker
                                .getInstance()
                                .downloadOnly(uiData);
                        builder.setDirectDownload(true);
                        builder.setShowNotification(true);
                        builder.setShowDownloadingDialog(false);
                        builder.setShowDownloadFailDialog(false);
                        builder.setForceUpdateListener(() -> {

                        });
                        builder.executeMission(activity);
                    }
                });


            }

            @Override
            public void onNonentityVersionExist(String string) {
                //无新版本
            }

            @Override
            public void onFail(String error) {
                //请求异常
            }
        });
    }


}
